使用立即窗口获得对象的帮助信息
立即窗口除了可以立即执行搜集,并返回debug.print(或在直接窗口中?加语句,或print 加语句)的输出信息
VBA使用立即窗口(? 表达式,或print 表达式),以及立即窗口+Debug.print()语句进行调试。
VB编辑器窗口,选择“视图”-“立即窗口”,即可以打开立即窗口:
使用VBA可以实现的功能包括:
1. 使重复的任务自动化.
2. 自定义EXCEL工具栏,菜单和界面.
3. 简化模板的使用.
4. 自定义EXCEL,使其成为开发平台.
5. 创建报表.
6. 对数据进行复杂的操作和分析.
用EXCEL作为开发平台有如下原因:
1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.
2. EXCEL内置大量函数.
3. EXCEL界面熟悉.
4. 可连接到多种数据库.
用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.
通过宏记录器无法完成的工作有:
1、录制的宏无判断或循环能力.
2、人机交互能力差,即用户无法进行输入,计算机无法给出提示.
3、无法显示EXCEL对话框.
4、无法显示自定义窗体.
加载宏就是写有VBA代码的xlam文件。
VBA宏不能运行有两种情况,一种是安装时没有安装office工具和共享功能,另外的情况是宏安全设置为宏不可用。
VBE(visual basic editor)是VBA程序的编辑工具,它集成了代码的编写、运行、调试以及对象属性更改和设置于一身。
打开VBE窗口最快捷的方式是用快捷键:Alt+F11(联想电脑可能是Fn+Alt+F11)。
另外,打开VBE窗口的另外常用方式是找到它的老家:开发工具;开发工具一般不显示在标题栏,首先要使用Excel的选项中的“自定义功能区”,设置“开发工具”进入主选项卡。
VBE的窗口界面大约有六个窗口,他们调出和消掉都可以通过视图找到,他们也是快速写VBA代码的好帮手:
工程资源管理器:显示当前VBA工程中包含的所有部件(工作簿,工作表,窗体,模块,类模块等)及所有引用的工程;
代码窗口:显示和编辑VBA程序代码,这个是最常用的代码窗口;
属性窗口:当前激活的工程部件的主要属性;
监视窗口:显示被监视的指定表达式的值。
立即窗口:执行单行的语句或者显示debug.print所打印的表达式的值。(这个很有用,可以调试每一句代码的值以及 运行的过程,通常调出来的快捷键是:Ctrl+G)
本地窗口:显示当前运行过程中所包含变量的值。
文档模块:Sheet1,Sheet2,Sheet3,ThisWorkbook
窗体模块:UserForm1
标准模块:模块1
类模块:类1
在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate, Auto_Deactivate。这些自动运行的宏是为了与Excel5和95兼容而保留下来的。现在可以使用工作簿的Open,Close,Activate,Deactivate 事件来代替它们。
模块:一组声明集合,其后为过程
声明:不可执行的代码,它命名一常数、变量或过程,并且指定其特性,比如数据类型。对于DLL procedures,声明指定名称、库和参数。
过程:命名的语句序列,可作为单元来执行。例如,Function、Property和 Sub 都是过程类型。总是在模块级别定义过程的名称,所有可执行的代码必须包含在过程内,一过程不能套在其它过程中。
Me表示模块本身,也就是代码所在的模块。
过宏记录器无法完成的工作有:
1、录制的宏无判断或循环能力.
2、人机交互能力差,即用户无法进行输入,计算机无法给出提示.
3、无法显示EXCEL对话框.
4、无法显示自定义窗体.
类模块可以添加对象属性和方法,然后便可在其它模块中引用。
[Private|Public|Friend][Static] Sub name [(arglist)]'过程作用范围+变量作用周期 [statements] [Exit Sub] '中途中止过程 [statements] End Sub [Private|Public|Friend][Static] Function name [(arglist)] [As type]'过程作用范围+变量作用周期 [statements] [name=expression] '将结果返回给函数名 [Exit Function] '中途中止过程 [statements] [name=expression] '将结果返回给函数名 End Function
static不会因为过程结束而释放其已更新的数据,只有当整个工程关闭才会释放这个变量。
VBA过程是可以跨文档调用的,但需要有同时打开。也就是A文档可以调用B文档保存的VBA,但需要B是打开的。